package main

import "fmt"

/*===select===
  - 从多个通道接收(取)/发送（存) 数据
*/
func main() {
	ch := make(chan int, 1)
	/* [流程]
	i=0时；管道中无值，所以执行 ch <- i，向管道存值；
	i=1时；取出管道值，0，打印
	i=2时；管道无值，所以执行 ch <- i,向管道存值；
	i=3时；管道有值，2，取出，打印
	...
	*/

	for i := 0; i < 10; i++ {
		select {
		case x := <-ch:
			fmt.Println(x)
		case ch <- i:
		default:
			fmt.Println("啥也不干")
		}
	}
}
